package public

import (
	"fmt"
	"google.golang.org/grpc/status"
	"time"

	"github.com/zeromicro/go-zero/core/logx"
	"google.golang.org/grpc/codes"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

type User struct {
	UserID            int64  `gorm:"primary_key"`
	UserName          string //昵称
	UserMobile        string //手机号
	UserPassword      string //密码
	UserSaltPassword  string //加盐密码
	Salt              string //盐值
	UserLoginStatus   int64  //登录状态
	UserStatus        int64  //用户状态
	UserLastLoginTime string //最后一次登录的时间
	AddTime           string //创建时间
	UpdTime           string //修改时间
	DelTime           string //删除时间
}

// 数据库信息    模型层  操作数据库
func Database() {
	//数据库链接
	dbconn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s",
		"root",
		"",
		"127.0.0.1",
		3306,
		"wsyx")

	var err error
	DB, err = gorm.Open(mysql.Open(dbconn), &gorm.Config{})
	if err != nil {
		logx.Error("mysql create error", err)
		return
	}
	DB.Debug()
	//DB.AutoMigrate(&User{})
}

// 登录
func UpdateUserLoginStatus(id, loginStatus int64) (bool, error) {

	err := DB.Table("user").Where("user_id =?", id).Updates(map[string]interface{}{
		"user_login_status": loginStatus,
		"upd_time":          time.Now().Format("2006-01-02 15:04:05"),
	}).Error
	if err != nil {
		return false, status.Error(codes.InvalidArgument, "update user_login_status error"+err.Error())
	}

	return true, nil
}
